'''

Python垃圾回收机制

Python GC 主要使用引用计数(reference counting) 来跟踪和回收垃圾
在引用计数的基础上, 通过"标记-清除"(mark and sweep)解决容器对象
可能产生循环引用的问题, 通过"分代回收"(generation collection)
以空间换时间的方式提高回收效率

	1.引用计数
		PyObject是每个对象必有的内容, 其中ob_refcnt就是作为引用计数,
		当一个对象有新的引用的时候 ob_refcnt 就会增加, 当对象的引用被删除
		ob_refcnt就会减少, 引用计数为0的时候该对象生命就结束了
		优点:
			1.简单
			2.实时性
		缺点:
			1.维护引用计数消耗资源
			2.循环引用

	2.标记-清除
		把所有可以访问到对象打标记, 然后清扫一遍内存空间, 把没有标记的对象清除

	3.分代技术
		分代回收的整体思想是, 将系统中的所有内存块, 按存活时间划分为不同的集合, 
		每个集合成为一个`代`, 垃圾收集的频率随着`代`的存活时间增大而减小
		
		Python默认定义了三代对象集合, 索引数越大, 对象存活时间越长

'''
